﻿using System;
using System.Collections.Generic;
using System.Text;
using NCommet.Core;
using System.Xml.Serialization;
using NCommet.Core.Agents;

namespace NCommet.Testing.SampleContent
{
    [Serializable]
    public class SimpleContent : ContentBase
    {
        protected string title;

        [Indexable(1)]
        public virtual string Title
        {
            get { return title; }
            set { title = value; }
        }

        protected string myOtherString;

        [Indexable(2)]
        public virtual string MyOtherString
        {
            get { return myOtherString; }
            set { myOtherString = value; }
        }
    }

    [Serializable]
    public struct PhoneInfo
    {
        public string Phone;
        public string Fax;
    }

    [Serializable]
    public class EmailInfo
    {
        public string Email;
        [XmlAttribute("Password")]
        public string Password;
    }

    [Serializable]
    public class SimpleContent2 : SimpleContent
    {
        private string address;

        public virtual string Address
        {
            get { return address; }
            set { address = value; }
        }

        private EmailInfo emailInfo;

        public virtual EmailInfo EmailInfo
        {
            get { return emailInfo; }
            set { emailInfo = value; }
        }

        private PhoneInfo phoneInfo;

        public virtual PhoneInfo PhoneInfo
        {
            get { return phoneInfo; }
            set { phoneInfo = value; }
        }

    }
  
    [Serializable]
    public class SimpleContent0 : ContentBase
    {
        protected string address;
        public virtual string Address
        {
            get { return address; }
            set { address = value; }
        }

        protected string emailInfo;
        public virtual string EmailInfo
        {
            get { return emailInfo; }
            set { emailInfo = value; }
        }

        protected string phoneInfo;
        public virtual string PhoneInfo
        {
            get { return phoneInfo; }
            set { phoneInfo = value; }
        }

    }
}
